package com.huaxia.day8.t2;

public class Father {
    static int a;//类变量
    String name;
    int id;

    //静态代码块
    // 静态代码块在类被加载的时候就运行了，而且只运行一次，并且优先于各种代码块以及构造函数。如果一个类中有多个静态代码块，会按照书写顺序依次执行
    static {
        a = 10;
        System.out.println("这是父类的静态代码块" + a);
    }

    //构造代码块
    //构造代码块在创建对象时被调用，每次创建对象都会调用一次，但是优先于构造函数执行。
    // 需要注意的是，听名字我们就知道，构造代码块不是优先于构造函数执行，而是依托于构造函数，也就是说，如果你不实例化对象，构造代码块是不会执行的。
    {
        id = 11;
        System.out.println("这是父类的构造代码块id:" + id);
    }

    Father() {
        System.out.println("这是父类的无参构造函数");
    }

    Father(String name) {
        System.out.println("这是父类的name" + name);
    }
}
